In a modern server-side enterprise application deployed in a server, request processing often involves interactions with multiple remote backend systems. Typically such interactions happen synchronously, thereby significantly increasing the response time. Because of the synchronous nature of the interactions, precious server-side resources, such as threads, can be blocked, which can affect the overall throughput of the server.